package nsu.edu.zsq.dao;

import java.util.List;
import nsu.edu.zsq.bean.Course;
import nsu.edu.zsq.bean.CourseExample;
import org.apache.ibatis.annotations.Param;

public interface CourseMapper {
    /**
     *
     */
    long countByExample(CourseExample example);

    /**
     *
     */
    int deleteByExample(CourseExample example);

    /**
     *
     */
    int deleteByPrimaryKey(Integer id);

    /**
     *
     */
    int insert(Course record);

    /**
     *
     */
    int insertSelective(Course record);

    /**
     *
     */
    List<Course> selectByExample(CourseExample example);

    /**
     *
     */
    Course selectByPrimaryKey(Integer id);

    /**
     *
     */
    int updateByExampleSelective(@Param("record") Course record, @Param("example") CourseExample example);

    /**
     *
     */
    int updateByExample(@Param("record") Course record, @Param("example") CourseExample example);

    /**
     *
     */
    int updateByPrimaryKeySelective(Course record);

    /**
     *
     */
    int updateByPrimaryKey(Course record);
    
    /**
    * 根据课程代码获取课程记录数
    * @param courseNo 课程代码
    * @return int 记录数
    */
    int countByCourseNo(@Param("courseNo") String courseNo);

    /**
     * 获取学校所有需要重修的课程列表（从stu_score表中查找拥有重修状态的课程）
     * @return List<Course>
     */
    List<Course> listRetakeCourse();
}